package com.roc.zookeeper.demo;

import java.io.IOException;

import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;

public class Master implements Watcher {
	
	ZooKeeper zk;
	String	  hostPort;
	
	/**
	 * Java最佳实践告诉我们，一个对象的构造函数没 有完成前不要调用这个对象的其他方法。
	 * 
	 * @param hostPort
	 */
	Master(String hostPort) {
		this.hostPort = hostPort;
	}
	
	/**
	 * 使用Master对象来构造ZooKeeper对象，以便添加Watcher的回调 函数。
	 * 
	 * @throws IOException
	 */
	void startZK() throws IOException {
		zk = new ZooKeeper(hostPort, 15000, this);
	}
	
	/**
	 * 这个简单的示例没有提供复杂的事件处理逻辑，而只是将我们收 到的事件进行简单的输出。
	 */
	public void process(WatchedEvent e) {
		System.out.println(e);
	}
	
	public static void main(String args[]) throws Exception {
		Master m = new Master(args[0]);
		m.startZK();
		// wait for a bit
		Thread.sleep(60000);
	}
}
